# -*- coding: utf-8 -*-
# @Author : 左手
# @File : 04-队列结合多线程.py
# @Software: PyCharm
# @Date : 2024/10/29 20:50

from queue import Queue
import threading
import time

# 获取图片链接
def get_url(q):
    num = 0
    while True:
        q.put(num)
        num += 1
        time.sleep(1)  # 模拟延迟

# 下载图片
def download_url(q):
    while True:
        print(q.get())

if __name__ == '__main__':
    # 创建队列容器
    q = Queue(4)
    # 创建两个子线程  args: 元组(里面只有一个数据的情况下，后面记得跟逗号)
    t1 = threading.Thread(target=get_url, args=(q,))
    # kwargs: 字典 形参的变量需要和字典的key保持一致
    t2 = threading.Thread(target=download_url, kwargs={'q':q})

    t1.start()
    t2.start()

"""
生产者与消费者模式

面包店   面包师父  蛋糕  负责制作蛋糕 生产者  负责生产数据
负责购买蛋糕  消费者就是顾客   顾客  消费者  负责消费数据
顾客是直接在面包店支架上拿蛋糕  还是在后厨拿蛋糕
"""


